#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QUrl>
#include <QPixmap>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //初始化
    manager=new QNetworkAccessManager(this);

    //关联finished(QNetworkReply *reply)
    connect(manager,SIGNAL(finished(QNetworkReply *)),this,SLOT(fun(QNetworkReply *)));
}

MainWindow::~MainWindow()
{
    delete ui;
}

//下载网络上的图片
void MainWindow::on_pushButton_clicked()
{
    //单行输入框获取图片网址
    QString urlstr=ui->lineEdit->text();
    //创建QUrl对象
    QUrl url(urlstr);

    //准备http请求
    QNetworkRequest request(url);

    //发送该请求
    manager->get(request);
}
//跟finished信号对应的槽函数，用来接收http服务器的应答信息
void MainWindow::fun(QNetworkReply *reply)
{
    //接收应答信息:由于此例子我是下载图片，服务器回复的应答信息就是图片颜色数据
    QByteArray buf=reply->readAll(); //buf里面存放的就是图片颜色数据

    //在标签上显示下载的图片
    QPixmap map;
    map.loadFromData(buf); //把图片原始颜色数据加载存放到QPixmap对象里面
    //调整图片大小
    map.scaled(ui->label->width(),ui->label->height());
    //让配置生效
    ui->label->setScaledContents(true);
    ui->label->setPixmap(map);
}
